home *** CD-ROM | disk | FTP | other *** search
- /****** axuucp/rn-catchup ****************************************************
- *
- * NAME
- * rn-catchup - Mark all articles in subscribed groups as read
- *
- * SYNOPSIS
- * rx rn-catchup.rexx [user]
- *
- * DESCRIPTION
- * This script changes your ~/.rnnewsrc file marking all articles in
- * subsribed groups as read.
- *
- * AUTHOR
- * Tobias Ferber <tf@ganymed.hall.sub.org>
- *
- ******************************************************************************
- *
- */
-
- user = arg(1)
- newsrc = axconfig("home") || user || "/.rnnewsrc"
- axnews = axconfig("news")
-
- /**/
-
- if exists(newsrc'_') then address command 'delete quiet' newsrc'_'
-
- call open('rc',newsrc)
-
- do until eof('rc')
- str= readln('rc')
- if words(str) > 0 then do
- parse var str lhs ' ' rhs
- gflag= right(lhs,1) /* ':' = subscribed, '!' = unsubscribed */
- gname= left(lhs,length(lhs)-1)
- gdir= axnews || translate(gname,'/','.')
-
- if gflag = ':' then do
- gart=0 /* #of marked articles */
-
- call open('seq',gdir'/.lowest'); glowest= readln('seq'); call close('seq')
- call open('seq',gdir'/.next'); gnext= readln('seq'); call close('seq')
- /*say gname || gflag gnext-glowest 'article(s)'*/
-
- rhs="0"
- if (gnext>0) & (gnext>glowest+1) then rhs= rhs'-'gnext-1
- end
- else say gname || gflag rhs '(ignored)'
-
- address command 'Echo >>' || newsrc'_' '"'gname || gflag rhs'"'
- end
- end
-
- call close('rc')
- address command 'copy quiet' newsrc'_' newsrc
- address command 'delete quiet' newsrc'_'
- exit
-
-
- /*@<axconfig>*/
-
- /* get an AXsh configuration value */
-
- axconfig: procedure
- tempfile = "T:axconfig." || pragma('Id')
- rc_index = "AXsh:rexx/rc.index"
- var_val=""; var_file=""; var_defval="";
-
- parse upper arg var_name
- if left(var_name,1) ~= '%' then var_name = '%'var_name
- if right(var_name,1) ~= ':' then var_name = var_name':'
-
- if open('idx',rc_index,'Read') then do
- do until (eof('idx') | (var_file~=''))
- str= translate(readln('idx'),' ',d2c(9))
- if words(str) > 0 then do
- parse var str vname ' ' fname '"' defval '"'
- if upper(vname) = var_name then do
- var_file= strip(fname,'B',' 'd2c(9))
- var_defval= defval
- end
- end
- end
- call close('idx')
- end
- else say 'Could not read "'rc_index'"'
-
- if words(var_file) > 0 then do
- if open('rc',var_file,'Read') then do
- do until (eof('rc') | (var_val~=''))
- str= translate(readln('rc'),' ',d2c(9))
- if upper(word(str,1)) = var_name then var_val = strip(readln('rc'),'B',' 'd2c(9))
- end
- call close('rc')
- end
- else say 'Could not examine "'var_file'" for' var_name
- end
- else do
- if words(var_defval) > 0 then var_val= var_defval
- else say 'No such config variable:' var_name
- end
-
- return var_val
-
-